﻿#include "mapfloor.h"

MapFloor::MapFloor(int _id, std::string _name):
    MapSpirit(_id,_name,Map_Sprite_Type_Floor),
    bkg(0),
    originX(0),//原点位置的 对应位置
    originY(0),//原点位置的 对应位置
    rate(1.0)//agv的距离（实际距离） 和 地图位置的比例
{
}

MapFloor::~MapFloor()
{

}

MapSpirit *MapFloor::clone()
{
    MapFloor *f = new MapFloor(getId(),getName());
    for(auto p : points) {
        f->addPoint(p);
    }
    for (auto p:paths) {
        f->addPath(p);
    }
    f->setBkg(bkg);
    f->setOriginX(originX);
    f->setOriginY(originY);
    f->setRate(rate);
	f->setOriginTheta(originTheta);
    return f;
}


int MapFloor::changePointId(int oldId, int newId)
{
    for (auto p : points)
    {
        if(p==oldId)
        {
            points.remove(oldId);
            points.push_back(newId);
            return 1;
        }
    }
    return 0;
}

int MapFloor::changePathId(int oldId, int newId)
{
    for (auto p : paths)
    {
        if(p==oldId)
        {
            paths.remove(oldId);
            paths.push_back(newId);
            return 1;
        }
    }
    return 0;
}

int MapFloor::changeBkgId(int oldId, int newId)
{
    if(bkg==oldId)
    {
        bkg=newId;
        return 1;
    }
    return 0;
}

